_NS_OOP_BEGIN



template< class T >
ThisPtr< T >::ThisPtr (T* p_obj) :
Ptr< T > (p_obj)
{
}



template< class T >
ThisPtr< T >::ThisPtr (ThisPtr< T >&& right) :
Ptr< T > (std::move (right))
{
}



template< class T >
ThisPtr< T >::~ThisPtr ()
{
}



template< class T >
ThisPtr< T > createThisPtr (T* p_obj)
{
	return std::move (ThisPtr< T > (p_obj));
}



_NS_OOP_END